The invention relates to an image processing system and in particular, but not exclusively, to a processing system for producing output digital image color separation data in one color format from input digital image color separation data in another color format.
In electronic image processing systems, images are normally defined by data representing an array of picture elements with each picture element being defined in terms of its red, green and blue content. Any three color components could in fact be used to represent a picture element but red, green and blue are chosen because in electronic image processing systems a television-type monitor is usually provided for display of an image and the colors red, green and blue correspond to the three color phosphors used in a TV-type monitor. The screen of a monitor is usually dark (black) and during the display of an image the phosphors are stimulated to emit red, green and blue light components which are summed in the eye of a person viewing the monitor and thereby seen as the appropriate color by the viewer. Thus, the red, green, blue (RGB) color format is an additive color format.
Electronic image processing systems are also used to process images prior to printing. Images are usually printed onto white paper and in order to achieve the correct color when the printed image is viewed inks are used to absorb light which would otherwise reflect from the white paper, thereby leaving only the unabsorbed light to be seen as the appropriate color by the viewer. In printing, cyan, magenta and yellow inks are used with cyan ink absorbing the color red, magenta ink absorbing the color green and yellow ink absorbing the color blue. The cyan, magenta, yellow (CMY) color format is a subtractive color format.
In theory any color can be represented completely in terms of RGB components or CMY components and can be converted between the RGB and CMY formats, without any loss of color or other information, by way of a matrix transform of the form: ##EQU1## where a to i are constants. Electronic integrated circuits designed to perform such a transform at high speed are readily available.
In practice there are several limitations in the printing process which will result in true CMY data not producing a printed image containing the correct color. Firstly, the cyan, magenta and yellow inks that are available for printing are not perfect absorbers of red, green and blue light respectively. As a result darker areas of the image will not tend to be seen as black (all colors absorbed) but will instead tend to be seen as a dark purple or brown color. Secondly, in dark areas relatively large amounts of all three inks should be used to create the dark color, but laying large amounts of different colored inks onto a single area of paper often results in the ink smearing and can result in a greater amount of ink being applied to the paper than the paper has the capability to absorb. Thirdly, thick deposits of ink are hard to dry on high speed presses. Fourthly, the cost of ink is significant and using large quantities of ink to represent a single color increases the cost of printing.
One way in which the problem of printing darker areas in an image can be overcome is to use black as a fourth color in the printing process. Black text is usually required in conjunction with printed images and therefore a black ink is already available for use in the printing of the image. The image separation for black is combined with the black text on a single printing plate thereby enabling image black to be applied to the paper at the same time as the text during printing. There is, however, a problem with this approach in that simply adding black to the printed image will result in an overall darkening of the image and in order to compensate for this darkening the CMY ink separations must be suitably adjusted.
A simplistic approach to this problem would be to allocate on a picture point-by-point basis a value of black equal to the smallest of the C, M and Y values to subtract said smallest value from each of the C, M and Y values. This approach is illustrated graphically in FIGS. 1(a) and 1(b) of the accompanying drawings. The graph in FIG. 1(a) represents the C, M and Y ink values for a pixel in an image. The magenta M ink has the least value (MIN) of the three inks. The graph in FIG. 1(b) represents C,M,Y and K (black) ink values for the same pixel in the same image. In the graph of FIG. 1(b) the value MIN has been subtracted from each of the C, M and Y ink values, and consequently the magenta M ink value is zero, and a black ink K having a value equal to the value MIN has been added to the set of inks.
Whilst fine in theory, this point-by-point black (K) value allocation does not work well in practice. As mentioned hereinabove, when the three CMY color inks are combined they do not produce the color black but a black ink does of course produce the color black and therefore the absorbtion of the black ink must be different to that of the three CMY color inks in combination. This difference in absorbtion must be compensated for.
There is, however, a problem with color compensation related to the imperfect color absorbtion characteristics of the ink. Each of the three CMY color inks absorbs a respective band of frequencies of light, and these bands must overlap otherwise there would be frequencies which were not absorbed at all. In the regions where the bands overlap, both inks absorb light. Any given level of light absorbtion in a region where two inks overlap can be achieved by any one of many different mixes of the two inks or by a single amount of black ink. If the absorbtion is assumed to be caused by one of the two inks the effect of compensating by replacing that ink with black ink will be to move the color balance of the overall picture away from the color of that one ink. Similarly, the selection of one mix will result in one perceived color balance and the selection of another mix will give another perceived color. Furthermore, the color frequency at one picture point will most likely not be the same as the color frequency at another picture point and therefore the absorbtion and the mix of inks by which it is achieved will also differ between the two points. The amount of each ink in the mix at a given point depends on the absorbtion characteristics of the CMY and K inks and since these characteristics are complex it is not possible to solve the problem by way of an algorithmic approach.
An empirical solution is therefore used in which a test sheet containing a large number of different mixes or combinations of CMY and K inks is printed and each of the different colors thus created are then measured. This enables a set of transfer functions to be produced which represent the actual effect of changing the combination of inks on the color. The transfer functions provide for every color a respective CMYK ink combination which has been found to produce the color when applied to paper. Four exemplary transfer functions, one for each CMYK-color separation, are shown in FIG. 2 of the accompanying drawings. The transfer functions are defined such that for each possible input color, which may be represented by data in RGB format or any other desired format, there is one output color separation value. Thus, an input color of value x for example, will give a cyan separation value of a, a magenta separation value of b, a yellow separation value of c and a black separation value of d. The curves representing the four transfer functions in FIG. 2 are of arbitrary form drawn purely for the purpose of explanation and have no special significance. In practice the exact form of the transfer function curves will depend on the characteristics of the inks to be used in printing.
The transfer functions can be used to create a look-up table which in response to input data representing any given color will output data representing a combination of CMYK inks which will produce the color on paper. The input color data can be in CMY or RGB format, or indeed any other format which uniquely defines the input color, for example the YUV luminance and chrominance definition used in broadcast television, because a look-up table can be created with equal ease for any color data format. The look-up table performs a three dimensional color look-up operation and for this reason the table is referred to as a color cube.
In principle a color cube offers a perfect solution to the above mentioned problems because for any desired color an ink combination which results in a perfect match is provided. However, in practice the large amounts of data required to define the combinations for every color mean that a full look-up table is prohibitively expensive to produce. In a digital processing system each R, G and B or C, M, Y and K color component is usually represented by an eight bit binary number and therefore a three component color representation, e.g. RGB or CMY, is effectively defined by a twenty-four bit binary number. Such a number enables 2.sup.24, i.e. 16,777,216 or 16M, different colors to be defined. A complete look-up table would therefore contain 16M entries for each color separation or ink and since printing normally uses four CMYK inks a complete look-up table for full color printing would require 64M entries to provide for each input color four eight-bit binary numbers, one for each of the CMYK separations. Even with modern memory devices the cost of building such a large look-up table is high.
Looking at the transfer functions in FIG. 2 of the accompanying drawings, it will be noted that between relatively close points, for example points P1 and P2 in the cyan transfer function of FIG. 2(a), the complex transfer curves change in a continuous smooth and predictable manner. It is possible to take advantage of this fact in order to reduce the size of the look-up table to more cost effective proportions.
Turning to FIG. 3 of the accompanying drawings there is shown a known system 1 comprising a look-up table 2 and an interpolator 3. As shown in FIG. 3 the desired color is defined in terms of RGB color components with each component being represented by an eight-bit binary number. The four most significant bits (bits 4-7) of each of the RGB color components are input to the look-up table 2. Since only the four most significant bits of the RGB color component data is used the color definition is relatively coarse. The look-up table is therefore arranged to output two values for each of the CMYK color components, the two values of each component defining a range of color within which the desired color is located. The two values for each of the CMYK color components are represented by the symbols C.sup.+ and C.sup.-, M.sup.+ and M.sup.-, Y.sup.+ and Y.sup.- and K.sup.+ and K.sup.- in FIG. 3 and between them define the corners of a cube in CMYK color space.
FIG. 4 of the accompanying drawings shows a cube 4 in CMY color space having corners at coordinate positions defined by the values C.sup.+ and C.sup.-, M.sup.+ and M.sup.-, Y.sup.+ and Y.sup.-. The black K axis is not shown in FIG. 4 but it should be noted that the values K.sup.+ and K.sup.- are used in a similar manner as the other color component values to delimit the volume in color space. The actual color defined by the input RGB color data is at a point P somewhere within the cube 4 and the exact coordinates of the point can be determined by interpolating between the values C.sup.+ and C.sup.-, M.sup.+ and M.sup.-, Y.sup.+ and Y.sup.- and K.sup.+ and K.sup.-, the values being input to the interpolator 3. The four least significant bits (bits 0-3) of the RGB color component data are also input to the interpolator 3 and are used therein to calculate interpolation weighting coefficients which are applied to the values C.sup.+, C.sup.- and M.sup.+, M.sup.- and Y.sup.+, Y.sup.-, and K.sup.+, K.sup.- to find the exact values of C, M, Y and K that represent the color at the point P. An image reproducing method and apparatus which uses this approach is described in GB-A-1369702.
There is, however, a problem with this approach which shows up particularly in the black (K) separation and is caused by errors which are inherent in the interpolation. Consider, by way of example, a look-up table arranged to generate values of K using an approach similar to that described hereinabove with reference to FIG. 1. That is to say, the look-up table is arranged such that the output value of K corresponds to the lowest of the values of the C, M and Y components. Assume that the data representing each color component comprises eight bits (giving a total of 256 different values for each component) and that a four-bit look-up table is used. For a point P whose true position is C=M=Y=40 the look-up table will provide for each color component a value above (i.e. 48) and a value below (i.e. 32) the true position. Thus, the look-up table will define a cube in color space having a diagonal axis between the points (32, 32, 32) and (48, 48, 48). At each corner of the cube the value of K is the smallest of the CMY coordinate values, as is shown in the following table:
______________________________________ C M Y K ______________________________________ 32 32 32 32 48 32 32 32 32 48 32 32 48 48 32 32 32 32 48 32 48 32 48 32 32 48 48 32 48 48 48 48 ______________________________________
It can be seen from the table that with the exception of the corner of the cube at coordinates (48, 48, 48) the value of K at each point identified by the interpolator is 32. At the point (48, 48, 48) the value of K is 48. An interpolation algorithm for locating the value of K at the centre of the cube, i.e. at the point P, will give equal weighting to the value of K at each of the eight corners of the cube. This will give a value of K=(32.times.7+48)/8=34. The actual value of K at the point P should be 40 and therefore there is an error of 6. In a total of 256 possible levels an error of six levels corresponds to approximately 2.3%, which is not trivial.
The same problem manifests itself in another way as will now be explained with reference to FIG. 5 of the accompanying drawings. As mentioned hereinabove any given color in a three color system can be achieved by any one of many different mixes of two or more colors in a four color system. The effect that this has on the relationship between any one input color, say red, and any one output color, say black, is shown in the exemplary transfer function between red (Rin) and black (Kout) in FIG. 5 of the accompanying drawings. Line 5 shows for fixed values of green G and blue B the transfer function between Rin and Kout. If the fixed value of green is increased to G+1 then the transfer function will move to a new position depicted by the line 6 in FIG. 5 and, similarly, if instead the fixed value of blue is increased to B+1 the transfer function will occupy the position of the line 7. In the interpolation to find the value K the interpolator is required in effect to interpolate along multiple transfer function lines. This means that several simultaneous equations must be solved in order to arrive at the value K but there are too many unknown variables for this to be achieved in practice. The interpolator 3 is therefore arranged to provide values for C, M, Y and K based on several assumptions about the colors. It will be appreciated that this does not always give an entirely satisfactory solution.
One solution to the problem of interpolation errors is proposed in GB-A-2053619. This solution is complex and relies on an approach based on overcoming the errors rather than solving the underlying problems which cause the errors to be generated in the first place.
According to one aspect of the invention there is provided an image processing system for processing digital image data in a first color format comprising a first set of at least three color axes, the data defining a large number of pixels which together represent an image with the data for each pixel comprising a most significant part and a least significant part in each color axis, the system comprising a color converter for converting the data to separation data defining at least one selected color separation in the image, the converter comprising: transforming means for transforming said image data from said first color format to a second color format comprising a second set of axes different to the first set, said second set of axes including an axis which corresponds substantially with the selected color separation; calculating means for calculating for each pixel from the most significant part of the data for each axis in said second format a respective approximate separation value; and correcting means responsive to the least significant part of the data for each axis in the second format for correcting the approximate separation value to obtain a correct separation value, the converter thereby providing on a pixel-by-pixel basis data defining the selected color separation.
According to another aspect of the invention there is provided a method of processing image data in a first color format to produce data representing at least one image color separation, the first color format comprising a first set at least three color dimensions and the image data defining a multiplicity of pixels which together form an image, with the data for each pixel comprising a most significant part and a least significant part, the method comprising: transforming said image data from said first color format to a second color format comprising a second set of color dimensions including a color dimension which corresponds substantially with said color separation; calculating for each pixel from the most significant part of the data for each color dimension in said second format a respective approximate separation value; and correcting the approximate separation value on the basis of the least significant part of the data for each dimension in the second format, thereby providing a correct separation value for the color separation on a pixel-by-pixel basis.
According to a further aspect of the invention there is provided an apparatus for producing output digital color separation signals from input digital color separation signals, the apparatus comprising rotator means to which said input signals are supplied and a look-up table and interpolator means for deriving for each picture element of said input signal a picture element of said output signal, said rotator being adapted to refer said output signal picture elements to image separation components different from the separation components of the input signal in a manner to ensure that said output signal picture element comprises in a high proportion a chosen one of said output signal separation components.